home *** CD-ROM | disk | FTP | other *** search
- ///////////////////////////////////////////////////////////////////////////////
- //////////////////////////////////////////////////////////////////////////////
- // This example code is from the book:
- //
- // Object-Oriented Programming with C++ and OSF/Motif
- // by
- // Douglas Young
- // Prentice Hall, 1992
- // ISBN 0-13-630252-1
- //
- // Copyright 1991 by Prentice Hall
- // All Rights Reserved
- //
- // Permission to use, copy, modify, and distribute this software for
- // any purpose except publication and without fee is hereby granted, provided
- // that the above copyright notice appear in all copies of the software.
- ///////////////////////////////////////////////////////////////////////////////
- //////////////////////////////////////////////////////////////////////////////
-
-
- ///////////////////////////////////////////////////////
- // Password.C: A simple C++ component class
- ////////////////////////////////////////////////////////
- #include "Password.h"
- #include <Xm/Xm.h>
- #include <Xm/RowColumn.h>
- #include <Xm/Label.h>
- #include <Xm/TextF.h>
-
- // A callback function used by the Password class
-
- void checkPasswordCallback ( Widget, XtPointer, XtPointer );
-
- Password::Password ( Widget parent , char * name )
- {
- // Use an XmRowColumn widget to manage a label
- // and a single line text field
-
- _rowColumn = XtCreateManagedWidget ( name,
- xmRowColumnWidgetClass,
- parent, NULL, 0 );
- _label = XtCreateManagedWidget ( "label",
- xmLabelWidgetClass,
- _rowColumn, NULL, 0 );
- _text = XtCreateManagedWidget ( "text",
- xmTextFieldWidgetClass,
- _rowColumn, NULL, 0 );
-
- // Register a callback function on the text widget's
- // XmNactivateCallback. Pass "this" as clientData
-
- XtAddCallback ( _text,
- XmNactivateCallback,
- checkPasswordCallback,
- (XtPointer) this );
- }
-
- void checkPasswordCallback ( Widget, XtPointer clientData, XtPointer )
- {
- // Cast the clientData to the expected object type
-
- Password *obj = (Password *) clientData;
- obj->checkPassword(); // Call the corresponding member function
- }
-
- void Password::checkPassword()
- {
- // Retrieve password from text widget
-
- char *passwd = XmTextFieldGetString ( _text );
-
- // Validate password here
- }
-
-